From 1d3bae468aff999508a52774a4360f24ac150a84 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roger=20Pau=20Monn=C3=A9?= Date: Tue, 13 Feb 2018 17:55:43 +0100 Subject: [PATCH] xsm: add bodge when compiling with llvm coverage support MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit llvm coverage support seems to disable some of the optimizations needed in order to compile xsm, and the end result is that references to __xsm_action_mismatch_detected are left in the object files. Since coverage support cannot be used in production, introduce __xsm_action_mismatch_detected for llvm coverage builds. Signed-off-by: Roger Pau Monné Acked-by: Daniel De Graaf --- xen/include/xsm/dummy.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h index d6ddadcafd..466bbcbde8 100644 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -24,8 +24,22 @@ * if references remain at link time. */ #define LINKER_BUG_ON(x) do { if (x) __xsm_action_mismatch_detected(); } while (0) + +#if defined(CONFIG_COVERAGE) && defined(__clang__) +/* + * LLVM coverage support seems to disable some of the optimizations needed in + * order for XSM to compile. Since coverage should not be used in production + * provide an implementation of __xsm_action_mismatch_detected to satisfy the + * linker. + */ +static inline void __xsm_action_mismatch_detected(void) +{ + ASSERT_UNREACHABLE(); +} +#else /* DO NOT implement this function; it is supposed to trigger link errors */ void __xsm_action_mismatch_detected(void); +#endif #ifdef CONFIG_XSM -- 2.30.2